package main

import (
	"fmt"
	"math"
)

// 实现对圆形、三角形、长方形求面积。

// 定义一个 Shape 接口
type Shape interface {
	Area() float64
}

// 圆形结构体
type Circle struct {
	Radius float64
}

// 长方形结构体
type Rectangle struct {
	Length, Width float64
}

// 三角形结构体
type Triangle struct {
	Base, Height float64
}

// 为 Circle 类型实现 Area 方法
func (c Circle) Area() float64 {
	return math.Pi * c.Radius * c.Radius
}

// 为 Rectangle 类型实现 Area 方法
func (r Rectangle) Area() float64 {
	return r.Length * r.Width
}

// 为 Triangle 类型实现 Area 方法
func (t Triangle) Area() float64 {
	return 0.5 * t.Base * t.Height
}

func main() {
	// 创建不同形状的实例
	circle := Circle{Radius: 5}
	rectangle := Rectangle{Length: 4, Width: 6}
	triangle := Triangle{Base: 3, Height: 4}

	// 输出每个形状的面积
	fmt.Printf("Circle Area: %.2f\n", circle.Area())
	fmt.Printf("Rectangle Area: %.2f\n", rectangle.Area())
	fmt.Printf("Triangle Area: %.2f\n", triangle.Area())
}
